<html>
<head><meta charset="utf-8"><title>How  to debug unstable fingerprints error · t-compiler/help · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/index.html">t-compiler/help</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html">How  to debug unstable fingerprints error</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="235696024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235696024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235696024">(Apr 22 2021 at 15:12)</a>:</h4>
<p>Can anyone give any insights in how I might approach debugging <a href="https://github.com/rust-lang/rust/pull/82272#issuecomment-824561341">https://github.com/rust-lang/rust/pull/82272#issuecomment-824561341</a>? Maybe some background on <em>what</em> this error even is?</p>



<a name="235696121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235696121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235696121">(Apr 22 2021 at 15:12)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> this is an error from <code>-Z incremental-verify-ich</code>, which is on by default since recently: <a href="https://github.com/rust-lang/rust/pull/83007">https://github.com/rust-lang/rust/pull/83007</a></p>



<a name="235696170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235696170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235696170">(Apr 22 2021 at 15:13)</a>:</h4>
<p>it means that the query system is incorrectly caching something that has changed</p>



<a name="235699072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699072">(Apr 22 2021 at 15:31)</a>:</h4>
<p>Right, that's about the limit of what I know</p>



<a name="235699094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699094">(Apr 22 2021 at 15:31)</a>:</h4>
<p>But don't really know about how to approach fixing it</p>



<a name="235699190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699190">(Apr 22 2021 at 15:32)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/How.20.20to.20debug.20unstable.20fingerprints.20error/near/235696170">said</a>:</p>
<blockquote>
<p>it means that the query system is incorrectly caching something that has changed</p>
</blockquote>
<p>Can you elaborate on that?</p>



<a name="235699193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699193">(Apr 22 2021 at 15:32)</a>:</h4>
<p>hmm well I don't know how HashStable works internally, but hashing an Rc sounds dubious</p>



<a name="235699214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699214">(Apr 22 2021 at 15:32)</a>:</h4>
<p>does that mean it will hash the strong and weak counts as well?</p>



<a name="235699509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699509">(Apr 22 2021 at 15:34)</a>:</h4>
<p>Hmm. Well, I'm removing that bit, so let's see if that fixes it</p>



<a name="235699615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699615">(Apr 22 2021 at 15:34)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/How.20.20to.20debug.20unstable.20fingerprints.20error/near/235699190">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/How.20.20to.20debug.20unstable.20fingerprints.20error/near/235696170">said</a>:</p>
<blockquote>
<p>it means that the query system is incorrectly caching something that has changed</p>
</blockquote>
<p>Can you elaborate on that?</p>
</blockquote>
<p>well I'm not 100% sure how the incremental system works (there's a lot of detail in <a href="https://rustc-dev-guide.rust-lang.org/queries/incremental-compilation.html">https://rustc-dev-guide.rust-lang.org/queries/incremental-compilation.html</a>) but the basic idea is that the query system notices that all the inputs to a query haven't changed and uses the old output. if it doesn't match, that means some of the inputs aren't being tracked by the query system</p>



<a name="235699642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699642">(Apr 22 2021 at 15:34)</a>:</h4>
<p>that can happen if you use global state or an <code>_untracked()</code> function</p>



<a name="235699769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699769">(Apr 22 2021 at 15:35)</a>:</h4>
<p>you could also try just not having these outputs as part of the query system and calculating them unconditionally instead</p>



<a name="235699793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699793">(Apr 22 2021 at 15:35)</a>:</h4>
<p>I don't know more without looking at the code, and I don't know very much about traits either <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="235699795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699795">(Apr 22 2021 at 15:35)</a>:</h4>
<p>Ah gotcha. So if inputs haven't changed but hash has -&gt; error?</p>



<a name="235699806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699806">(Apr 22 2021 at 15:35)</a>:</h4>
<p>exactly</p>



<a name="235699897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699897">(Apr 22 2021 at 15:36)</a>:</h4>
<p>Okay then I'm gonna guess it's the <code>Lrc</code></p>



<a name="235699919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699919">(Apr 22 2021 at 15:36)</a>:</h4>
<p>Unless there's some sorting going on</p>



<a name="235699977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235699977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235699977">(Apr 22 2021 at 15:37)</a>:</h4>
<p><code>FxHashMap</code> is stable right</p>



<a name="235700009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235700009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235700009">(Apr 22 2021 at 15:37)</a>:</h4>
<p>whether sorting is part of the hash depends on the type currently I think <a href="https://github.com/rust-lang/rust/pull/84234/files">https://github.com/rust-lang/rust/pull/84234/files</a></p>



<a name="235700118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235700118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235700118">(Apr 22 2021 at 15:38)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/How.20.20to.20debug.20unstable.20fingerprints.20error/near/235699977">said</a>:</p>
<blockquote>
<p><code>FxHashMap</code> is stable right</p>
</blockquote>
<p>uhhh I am not sure, rustdoc only uses queries, it doesn't define them</p>



<a name="235703950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235703950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> cuviper <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235703950">(Apr 22 2021 at 16:04)</a>:</h4>
<p>I think <code>FxHashMap</code> is only stable if it's given the exact same sequence of insert, remove, and capacity changes</p>



<a name="235858321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/How%20%20to%20debug%20unstable%20fingerprints%20error/near/235858321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/How.20.20to.20debug.20unstable.20fingerprints.20error.html#235858321">(Apr 23 2021 at 15:13)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/84447">https://github.com/rust-lang/rust/issues/84447</a></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>